df["Tomorrow"] = df["Close"].shift(-1)
df["Target"] = (df["Tomorrow"] > df["Close"]).astype(int) # наша цель
Очень важно, какие данные будут использоваться для прогнозирования. Здесь используется: показатель силы закрытия бара (т.е. (Close-Low)/(High-Low)) за текущий и предыдущий день, процентные соотношения между ценой закрытия и средними за периоды 2,10,15,25,50 дней по индексам IMOEX, RVI, RGBITR, и плюс цены закрытия индексов RVI, RGBITR.train = df.loc['2013':'2022']
test = df.loc['2023':]
Для создания модели используется <a href=«scikit-learn.В прошлой статье рассмотрено как можно получить информацию по финансовым инструментам. Дальше будет опубликовано несколько статей о том, что первоначально можно делать с полученными данными, как проводить анализ и составлять стратегию. Материалы составлены на основании публикаций в иностранных источниках и курсах на одной из онлайн платформ.
В этой статье будет рассмотрено, как рассчитывать доходность, волатильность и построить один из основных индикаторов.
import pandas as pd
import yfinance as yf
import numpy as np
import matplotlib.pyplot as plt
sber = yf.download('SBER.ME','2016-01-01')
Данная величина представляет собой процентное изменение стоимости акции за один торговый день. Оно не учитывает дивиденды и комиссии. Его легко рассчитать используя функцию pct_change () из пакета Pandas.
Как правило используют лог доходность, так как она позволяет лучше понять и исследовать изменения с течением времени.
# Скорректированая цена закрытия`
daily_close = sber[['Adj Close']]
# Дневная доходность
daily_pct_change = daily_close.pct_change()
# Заменить NA значения на 0
daily_pct_change.fillna(0, inplace=True)
print(daily_pct_change.head())
# Дневная лог доходность
daily_log_returns = np.log(daily_close.pct_change()+1)
print(daily_log_returns.head())
Всех с наступающим (и никаких отступлений!) Днем Защитника Отечества ака Денем Советской Армии и Военно-Морского Флота!
И за тех, кто в море! Ну а те кто в ЗОЖе, начинаем готовить себе замену — искусственного трейдера.
Важнейшей частью любого алгоритма машинного обучения являются данные, на которых происходит обучение, а еще важнее качество этих данных.
Для приготовления искусственного трейдера нам понадобятся следующие ингредиенты:
1.Установленная платформа Jatotrader (FREE или круче) версии 2.9.3 или выше. Можно обойтись и без установки Джато и взять тестовый набор данных отсюда. Описание содержимого файлов датасета — в конце топика.
2.Питон.Jupyter Notebook (Anaconda3)
Короче говоря, Jatotrader мы используем как предварительный обработчик и генератор данных для машинного обучения (МО), а Python для создания модели, обученной на этих данных. Возможности Jatotrader позволяют создавать частотные графики из тиковых данных, примерно такого вида
Статья о том, как получить ежедневные исторические данные по акциям, используя yfinance, и минутные данные, используя alpha vantage.
Как вы знаете, акции относятся к очень волатильному инструменту и очень важно тщательно анализировать поведение цены, прежде чем принимать какие-либо торговые решения. Ну а сначала надо получить данные и python может помочь в этом.
Биржевые данные могут быть загружены при помощи различных пакетов. В этой статье будут рассмотрены yahoo finance и alpha vantage.
Yahoo Finance
Сначала испытаем yfianance пакет. Его можно установить при помощи команды pip install yfinance. Приведенный ниже код показывает, как получить данные для AAPL с 2016 по 2019 год и построить скорректированную цену закрытия (скорректированная цена закрытия на дивиденды и сплиты) на графике.
# Import the yfinance. If you get module not found error the run !pip install yfianance from your Jupyter notebook
import yfinance as yf
# Get the data for the stock AAPL
data = yf.download('AAPL','2016-01-01','2019-08-01')
# Import the plotting library
import matplotlib.pyplot as plt
%matplotlib inline
# Plot the close price of the AAPL
data['Adj Close'].plot()
plt.show()